A large and increasing portion of the information handled in today's modern environment is digital. For example, many organizations, service providers, institutions, and establishments store, handle and manipulate most of their information in digital forms. Typically, databases are used to store and retrieve information. Various systems, methods and/or applications may be used to store, retrieve and/or manipulate data in databases.
At some point, as the quantity of digital information stored on, and retrieved from a database increases, a capacity of the database may no longer suffice. For example, storage and/or computational capacities of a database may be exhausted. In such cases, more databases or other data sources may be added to a site or system. Typically, information may be duplicated on a number of physical or logical data sources and a request for information may be directed to a data source that may be selected based on a load balancing or other scheme.
However, duplicating information on a number of data sources (also known as mirroring) may have a number of drawbacks. For example, storage utilization may be far from optimal when duplicating information on several data sources. Other methods directed to distributing data over a number of data sources may require clients to determine a location of a data item prior to requesting the data item, e.g., determine which database stores a specific item and interact with the specific database.